package cn.iocoder.yudao.module.crossborder.order.controller.admin.orderreturnitem.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import cn.idev.excel.annotation.*;

@Schema(description = "管理后台 - 跨境电商退换货明细 Response VO")
@Data
@ExcelIgnoreUnannotated
public class OrderReturnItemRespVO {

    @Schema(description = "退换货明细编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "20148")
    @ExcelProperty("退换货明细编号")
    private Long id;

    @Schema(description = "退换货编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "26411")
    @ExcelProperty("退换货编号")
    private Long returnId;

    @Schema(description = "退换货单号", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("退换货单号")
    private String returnNo;

    @Schema(description = "订单项编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "17033")
    @ExcelProperty("订单项编号")
    private Long orderItemId;

    @Schema(description = "SKU编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "26312")
    @ExcelProperty("SKU编号")
    private Long skuId;

    @Schema(description = "SKU编码", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("SKU编码")
    private String skuCode;

    @Schema(description = "商品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    @ExcelProperty("商品名称")
    private String productName;

    @Schema(description = "退换货数量", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("退换货数量")
    private BigDecimal returnQuantity;

    @Schema(description = "单价", requiredMode = Schema.RequiredMode.REQUIRED, example = "11671")
    @ExcelProperty("单价")
    private BigDecimal unitPrice;

    @Schema(description = "总金额", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("总金额")
    private BigDecimal totalAmount;

    @Schema(description = "退款金额", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("退款金额")
    private BigDecimal refundAmount;

    @Schema(description = "货币代码", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("货币代码")
    private String currencyCode;

    @Schema(description = "退换货原因", example = "不对")
    @ExcelProperty("退换货原因")
    private String returnReason;

    @Schema(description = "质量问题")
    @ExcelProperty("质量问题")
    private String qualityIssue;

    @Schema(description = "已收货数量", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("已收货数量")
    private BigDecimal receivedQuantity;

    @Schema(description = "质检结果")
    @ExcelProperty("质检结果")
    private String qualityCheckResult;

    @Schema(description = "重新入库数量", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("重新入库数量")
    private BigDecimal restockQuantity;

    @Schema(description = "报废数量", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("报废数量")
    private BigDecimal scrapQuantity;

    @Schema(description = "批次号")
    @ExcelProperty("批次号")
    private String batchNo;

    @Schema(description = "序列号列表，逗号分隔")
    @ExcelProperty("序列号列表，逗号分隔")
    private String serialNos;

    @Schema(description = "备注", example = "你猜")
    @ExcelProperty("备注")
    private String remark;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}
